Skip to content

feat: enable decoupled L3 judgment with evidence safeguards#4

Merged
rhythm-c merged 1 commit into
mainfrom
feat/decoupled-l3
Jul 20, 2026
Merged

feat: enable decoupled L3 judgment with evidence safeguards#4
rhythm-c merged 1 commit into
mainfrom
feat/decoupled-l3

Conversation

@rhythm-c

Copy link
Copy Markdown
Collaborator

Summary

  • add Pipeline::evaluate_through_l2 with structured L1, L2, effective-decision, stage-status, and escalation-cause output
  • preserve unresolved escalation without invoking L3 or applying fail_closed and speculative-L3 resolution
  • expose the through-L2 path through the Rust SDK and an asynchronous TypeScript N-API worker task
  • consume Observer argv_truncated and argv_incomplete signals so incomplete command evidence cannot become an ordinary allow decision
  • keep explicit dangerous prefixes blockable while stopping incomplete ambiguous evidence at L1
  • version the TypeScript SDK as 0.2.0 and update SDK documentation, lockfiles, and test coverage

Why

AnySentry needs to execute L1/L2 in a fast-judge worker and hand unresolved L2 escalations to an independent, durable L3 worker.

The existing evaluate path may invoke L3 synchronously or resolve an outstanding escalation through fail_closed, which hides the intermediate state required for asynchronous dispatch and can block the AnySentry API and Dashboard while L3 is running.

Observer now reports command-evidence quality explicitly. Sentry must preserve that uncertainty instead of allowing an event based on a benign-looking but incomplete argv prefix.

Validation

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test
    • 67 unit tests passed
    • 12 integration tests passed
  • npm run build
  • npm test
    • 11 TypeScript SDK tests passed
  • git diff --check
  • AnySentry API and web builds passed against the locally packed TypeScript SDK
  • AnySentry Observer-ingest integration verification passed

@rhythm-c
rhythm-c merged commit 2331ee8 into main Jul 20, 2026
1 check passed
@rhythm-c
rhythm-c deleted the feat/decoupled-l3 branch July 20, 2026 10:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant